JSON Web Token(JWT)是一種開放標準(RFC 7519),用於在網絡應用環境間安全地傳輸信息。JWT 可以被簽名(使用 HMAC 算法或者 RSA/ECDSA 的公鑰/私鑰對),因此可以驗證其完整性。
JWT 由三部分組成,每部分用點(.)分隔:
包含令牌的類型和使用的演算法。
包含聲明(claims)。聲明是關於實體(通常是用戶)和其他數據的聲明。
用於驗證消息在傳輸過程中沒有被更改,並且,對於使用私鑰簽名的令牌,它還可以驗證 JWT 的發送方是否為它所稱的發送方。
JWT 主要用於以下兩種場景:
認證(Authentication):這是使用 JWT 的最常見場景。一旦用戶登錄,每個後續請求都將包括 JWT,允許用戶訪問該令牌允許的路由、服務和資源。
訊息交換:JWT 是在各方之間安全地傳輸信息的好方法。因為 JWT 可以被簽名,所以你可以確定發送者就是它們所說的那個人。
是一個綜合標準,可以同時包含JWS(用於簽名)和JWE(用於加密)的功能。
提供了一個簡單的方式來傳輸聲明(claims),這些聲明可以被簽名和/或加密。
廣泛用於身份驗證和授權場景,特別是在分佈式系統中。
的結構使得它易於在不同的系統和語言之間傳遞和處理。
相比單獨使用JWE或JWS,JWT提供了更完整的安全解決方案,可以根據需求選擇是否加密或簽名。
已經成為業界標準,有廣泛的工具和庫支持,使得實現和維護變得更加容易。
JWT 是一種靈活且安全的方式來處理用戶認證和訊息交換。它的簡單性和多功能性使其成為現代 Web 應用程序中廣泛使用的技術。